package com.tyk.bookstore.back.payment.model.vo;

import com.tyk.bookstore.back.common.core.model.page.PageVo;
import com.tyk.bookstore.back.payment.model.enume.AmountLogType;
import com.tyk.bookstore.back.payment.model.enume.StatementNature;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author tyk
 * @description 系统余额变更日志
 */
@Data
@Schema(name = "AmountLogPageVo", description = "系统余额变更日志")
public class AmountLogPageVo extends PageVo<AmountLogPageVo.AmountLog> {

    @Data
    @Schema(name = "AmountLog", description = "系统余额变更日志")
    public static class AmountLog implements Serializable {

        @Serial
        private static final long serialVersionUID = 1L;

        @Schema(description = "ID")
        private Long id;

        @Schema(description = "会员ID")
        private Long memberId;

        @Schema(description = "会员名称")
        private String memberName;

        @Schema(description = "会员账号")
        private String memberAccount;

        @Schema(description = "变更值")
        private BigDecimal modification;

        @Schema(description = "来源标识")
        private Long sourceIdentification;

        @Schema(description = "交易性质[0收入,1支出]")
        private StatementNature nature;

        @Schema(description = "变更类型[0充值,1订单支付]")
        private AmountLogType type;

        @Schema(description = "记录时间")
        private LocalDateTime createTime;

    }
}
